CIS 4020 Operating Systems
Fall 2023
Syllabus Overview
(Not contractual)

FREE TEXTBOOK:
Operating Systems: Three Easy Pieces
Remzi H. Arpaci-Dusseau and 
Andrea C. Arpaci-Dusseau

http://pages.cs.wisc.edu/~remzi/OSTEP/ <http://pages.cs.wisc.edu/%7Eremzi/OSTEP/>
Available in hardcover, softcover, and PDF. The PDF is free.

EXPENSIVE TEXTBOOK:
Silberschatz, 
Operating Systems Concepts, 
Wiley, 
9th Edition, 
ISBN 978-1118063330

Who am I?
Keith Tookey, PhD, Computer Science
email: keith.tookey@vtc.edu 
Office: Cyberspace
Email: keith.tookey@vtc.edu 
Office Hours: after class, or by appointment

What will we learn?
We will learn multi-programming operating systems.  Topics include: basic computer organization, interrupts, process and thread management, scheduling, synchronization of concurrent processes, deadlock conditions, memory organization and management, virtual memory, memory protection, paging hardware. Peripheral devices, file systems, file and free space management, file protection, virtual operating systems, distribute systems.

YOUR GRADE:

30% Homework
30% Midterm
30% Final
10% Participation

What does matter:
Good grades (>90%)
OK grades (>80%)

What doesn’t matter:
My mommy wants me to get an A
I lose my scholarship if I get a B
I’ll be kicked out if I get a C
I’ve really, really been working my hardest.
I want to keep redoing it until I get a high grade.

Curve possible, at end of semester.

CIS 4020 Operating Systems
Fall 2023
Preliminary Syllabus

REQUIRED FREE TEXTBOOK:
Operating Systems: Three Easy Pieces
Remzi H. Arpaci-Dusseau and 
Andrea C. Arpaci-Dusseau
http://pages.cs.wisc.edu/~remzi/OSTEP/ <http://pages.cs.wisc.edu/%7Eremzi/OSTEP/>v
Available in hardcover, softcover, and PDF. 

Optional TEXTBOOK:
Silberschatz, 
Operating Systems Concepts
Wiley, 
9th Edition, 
ISBN 978-1118063330
Do a Web search before buying this book.

Prerequisite:
CIS 3050 or consent of instructor
Professor:
Keith Tookey, PhD, Computer Science
email: keith.tookey@vtc.edu 
Office: Cyberspace

The text(s) and the class take two different approaches to cover the same material.  
This is intentional, to give you a better perspective.

Office hours: 
Office Hours: after class, or by appointment

Class:
MW 3:50-5:05 Cyberspace
Lab:
Randolph	W 10-12
Williston	Th 2-4
Randolph lab is available by ZOOM

Course Concept:
This is a theory-based lab class. There will be some small group work in this class, mainly in the labs.

Small group exercises:
On some days, usually in labs, you may be asked to work on a problem in a small group.  On those days, the group may hand in one joint assignment.  However, you will be required to email the professor your assessment of what percentage of work was done by each person in the group.  Assessment of contributions MUST be done individually.
PLEASE NOTE: 
Sometimes there is an individual assignment that follows group work
Labs:
For some of the labs, it will be necessary to have Hackbox and Devbox installed on a computer.
You will need to download these to your own computer.  
The download time from the Internet can be long.
 In labs, you are NORMALLY allowed to work in groups of two, but do not work with the same person each week.  (Sometimes there will be ONE group of three.)
In labs, you may ALWAYS discuss concepts with other students.
If you work in a small group, EACH MEMBER of the small group should email, individually, your estimation of how much each person in the group contributed.
You MUST include names.  Percentages MUST add to 100%.

Meetings 
Class meetings will normally be by ZOOM.
Randolph labs will always be available by ZOOM.
Williston labs will normally be in person.

Grading:
Exams will be sixty percent of the grade.  All regular labs, assignments and other homework together will be thirty percent of the grade.  The remainder of the grade will be attendance and class participation.  Group exercises count under the assignments/homework part of the grade.  The midterm and final will each be 30%, the combined programs and homework will be 30%, and the rest of the grade will be 10%.  PLEASE NOTE:  You must complete at least ¾ of the labs to PASS the course. 
For each assignment, there is a guaranteed minimum grading standard.  A 90% or above is a guaranteed A, an 80-89% is a guaranteed B, a 70-79% is a guaranteed C, and a 60-69% is a guaranteed D.  At the instructor's option, for a hard assignment the grading standard MAY be percent of highest grade actually achieved, rather than percent of maximum possible points.  Effectively, this promotes the highest grade achieved to 100%.  The MOST GENEROUS possibility is to drop highest percentage to 90%, which would make 81% the lowest A, and 72% the lowest B.   The weighted average of all assignments compared to the weighted grading standard for all assignments determine the grade. Plus and Minus grades are determined only at the end of the semester, by identifying grades noticeably higher or lower than the main body of grades.  You may always ask about your grades by email.

Course Objectives: Upon completion of the course the student should be able to:
Explain the major functions of current multiprogramming operating systems. 
Define "process" and "thread" and describe how they are created, scheduled, and managed. 
Explain the nature and results of "race conditions". Show how locks are used to avoid them. 
Explain the several layers in the memory hierarchy. 
Apply basic algorithms for virtual address translation and memory management. 
Explain the overarching problems addressed by all file systems. 
Simulate the algorithms used by file systems to manage available space and files. 
Explain the hardware and software steps in bringing data from secondary storage into a process. Include the roles of interrupts, device controllers, device drivers, and direct memory access. 
Describe the benefits and implementation of a virtual machine. 

Attendance Policy:
Class attendance is required, by ZOOM. ZOOM has removed your excuses for absences.  You are responsible for material covered and announcements made whether you are there or not. Class sessions will be recorded when possible.  Attendance and class participation are included in your grade. It is solely the option of the instructor what to do about classes missed for any reason. If you MUST miss, an E-mail to my office must be made as soon as you know you will miss. You may come by office hours to review work missed, if needed. If you tell me at class time of a future absence, please also send me an email. Global Pandemics, Religious observances and College sponsored events may be a valid reason to miss class, but absences must be arranged PERSONALLY BY YOU in advance, and you still need to learn missed material. There will be some small group work in this class. Missing a day on which there is small group work or a lab may mean that you need to do the work by yourself instead of with help, or get a ZERO for the assignment. If you do not attend class (in person or by Zoom) synchronously, you must check in by email at least once a week.

Punctuality:
Showing up late for class is disruptive, and you risk missing important announcements and foundational material. I normally start on time and use the full class period. If you are not present at the beginning of class, you may not get credit for attendance that day.

CANVAS and email:
Announcements for this class will be made by email, or via CANVAS.  You are responsible for knowing anything that is posted on CANVAS for this class. It is ALWAYS OK to email the professor about your grades.  PLEASE email the professor if you have a grade of 0 for work you believe you handed in.

Procrastination 
One of the easiest ways to fail this course is to put off doing required work. Procrastination is usually fatal in this class.  If you are having trouble completing work, the BEST thing to do is to go to office hours early and often.   The WORST thing to do is to wait, hoping the homework will magically complete itself.  It won’t. 
You learn by doing; procrastination interferes with learning.
Assignments should be submitted one week from when they are assigned, unless otherwise announced. Assignments turned in more than two weeks after they are assigned risk getting a ZERO. If you need an exception for a due date, discuss it with me during office hours.
No work is to be handed in during finals (after study days) without PRIOR permission.

Failure to Complete Work:	
Anyone who fails to do required work, misses an exam, has inappropriate classroom conduct, or has serious attendance problems, will be warned and if the problem is not corrected will be failed.  Failure to hand in or present an assignment is sufficient grounds to be dropped.  (Keep a backup copy of anything important.  NEVER hand in the only copy.)  

Makeup Exams:
If you need to take an exam at a different time, or at the Learning Center, you must arrange it BEFORE the week of the exam.  If you will miss due to unforeseen emergency, you MUST email me as soon as you know you will miss, and not later than the time of the exam.  If I have not received a communication from you (or your next of kin) by the day of the exam, you will get a zero on the exam.  Only students who have called as soon as reasonably possible will be allowed a makeup option. If you miss an exam for a campus event, you MUST take the exam early.

Student Disabilities:
Students with documented disabilities are encouraged to share, in confidence, information about needed specific course accommodations. Students with documented disabilities are also encouraged to make individual appointments the appropriate person so that you can be informed of the full range of student services available at the University. 

Academic Integrity:
Academic integrity is a core VTC value which insures respect for the academic reputation of the College, its students, faculty and staff, and the degrees it confers. The College expects that students will conduct themselves in an honest and ethical manner and respect the intellectual work of others.  Please ask about my expectations regarding permissible or encouraged forms of student collaboration if they are unclear.   At minimum, all sources of help must be reported.  The minimum penalty for academic dishonesty is a 0 for the work in question.  Failing the class is a possible penalty.  Academic Honesty violations will be reported.
Collaboration in a classroom group is perfectly fine; forming study groups is an excellent idea; collaboration on individual assignments is academic dishonesty unless approved and reported in advance. It is acceptable for you to use textbook examples and classroom examples as models.  It is not acceptable for your program to resemble too closely a program from the Internet, another student’s code, or other source.  If two students hand in work that shows collaboration (other than for group work), BOTH students will fail.

Classroom behavior:
Use of cell phones or any other distraction from class counts as an absence.  Please be on time.  Be professional.     If your behavior or attire becomes a distraction in the classroom, you will be warned, and if the problem is not corrected, you will be removed from the class.
 
Commitment to a Positive Learning Environment:
If you are harassed, discriminated against, assaulted, or suffer any other problem which interferes with your participation in the learning environment, please contact the appropriate office.  Faculty are required to report problems if they become aware of them.  You may ALWAYS ask me for help.

Additional resources:
If anyone needs additional resources, please feel free to ask the professor for help in obtaining services.  Help is available for both academic and non-academic issues.

Prerequisite Knowledge:
This course ASSUMES knowledge of prerequisites.  Regrettably, we cannot spend class time catching you up on prerequisites. If you do not know a BIT about hardware already, consider changing your registration.

DISCLAIMER: I did not write HackBox, Virtual Box, or Dev Box.
These labs are adapted from the work of an earlier VTC professor.

Operating Systems Textbooks
Operating Systems: Internals and Design Principles  by William Stallings  
Publisher: Pearson  Edition: 9th  2018  

Operating System Concepts, 9th Edition 
Abraham Silberschatz, Peter B. Galvin, Greg Gagne 

Operating Systems: Three Easy Pieces  Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau  Arpaci-Dusseau Books  March, 2015 (Version 0.90)  [FREE]

Operating Systems Readings

Major Topic: Introduction
Concepts: Chapters 1,2
Principles: Chapters 1,2
Pieces: Chapters 1,2

Major Topic: Processes
Concepts: Chapters 3,4
Principles: Chapters 3,4
Pieces: Chapters 3,4,5

Major Topic: Synchronization
Concepts: Chapters 5,7
Principles: Chapters 5,6
Pieces: Chapters 25-34

Major Topic: Processor Scheduling
Concepts: Chapter 6
Principles: Chapters 9,10
Pieces: Chapters 6-11

Major Topic: Virtual Memory
Concepts: Chapter 9
Principles: Chapters 7,8
Pieces: Chapters 12-24

Major Topic: Storage and Files
Concepts: Chapters 10-13
Principles: Chapters 11-12
Pieces: Chapters 35-40

Major Topic: Security
Concepts: Chapters 14-15
Principles: Chapter 15

Major Topic: Virtual Machines
Concepts: Chapter 16
Principles: Chapters 14
Pieces: Appendix: Virtual Machines

Major Topic: Distributed Systems
Concepts: Chapter 17
Principles: Chapters 16
Pieces: Chapters 48-51

Big Ideas

Minor Topic: Class Policies
Major Topic: Introduction
Major Topic: Processes
Major Topic: Synchronization: The Problem
Major Topic: Synchronization: Approaches
Major Topic: Processor Scheduling
Major Topic: Virtual Memory
Major Topic: Storage and Files
Major Topic: Security
Major Topic: Encryption
Major Topic: Virtual Machines
Major Topic: Distributed Systems
Major Topic: Why Study OS?

LABS

Order and timing of labs may be revised
LAB 1: install Devbox and Hackbox
LAB 2: Scheduling Simulation
LAB 3: Counting System calls
LAB 4: Fork Watcher
LAB 5 Main Memory Scheduling
LAB 6 Memory Investigation
LAB 7 Memory Simulation
MIDTERM… held in lab period
LAB 9 Poking the File System
LAB 10 Virtual Memory Exercise
LAB 11 Vulnerabilities
LAB 12 Your Personal Operating System

In Class Group Activities
Group 1
Base to Base Conversion
(and Computer Representation of Information)
Group 2
Dining Philosophers
Group 3
Merge Sort 
Group 4
Variant and Free Memory
Group 5
Array Mapping
Group 6
Virtual Family
Group 7
Fun With Disk Directories
Group 8
Password Guessing
Group 9
hashing
Group 10
Encryption (private)
Encryption (RSA)
Group 11
Distributed machines—why?
Group 12
OS—Why?

WEEK 1
Minor Topic: Class Policies
Major Topic: Introduction
Group 
Base to Base Conversion
Computer Representation of Information
LAB : install Devbox and Hackbox

WEEK 2
Major Topic: Processes
Group 
Dining Philosophers
LAB : Scheduling Simulation

WEEK 3
Major Topic: Synchronization: The Problem
Group 
Merge Sort 
LAB : Counting System calls

WEEK 4
Major Topic: Synchronization: Approaches
Group 
Array Mapping
LAB : Fork Watcher

WEEK 5
Major Topic: Processor Scheduling
Group 
Variant and Free Memory
LAB Main Memory Scheduling

WEEK 6
Major Topic: Virtual Memory
Group 
Virtual Family
LAB Memory Investigation

WEEK 7
Major Topic: Storage and Files
Group 7
Fun With Disk Directories
LAB 7 Memory Simulation

WEEK 8
Major Topic: Security
Group 
Password Guessing
MIDTERM… held in lab period

WEEK 9
Major Topic: Encryption
Group 
hashing
LAB 8 Poking the File System

WEEK 10
Major Topic: Virtual Machines
Group
Encryption (private)
Encryption (RSA)
LAB 9 Virtual Memory Exercise

WEEK 11
Major Topic: Distributed Systems
Group
Distributed machines—why?
LAB Vulnerabilities

WEEK 12
Major Topic: Why Study OS?
Group
OS—Why?

FINAL during Finals Week